package conservare.web.validator;

import java.util.Calendar;
import java.util.Date;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

@FacesValidator("DataVencimentoBoletoValidator")
public class DataVencimentoBoletoValidator implements Validator{

	@Override
	public void validate(FacesContext context, UIComponent componente, Object value) throws ValidatorException {
		
		Calendar dataVencimentoBoleto = Calendar.getInstance();
		dataVencimentoBoleto.setTime((Date) value);
		// Set time fields to zero  
		dataVencimentoBoleto.set(Calendar.HOUR_OF_DAY, 0);  
		dataVencimentoBoleto.set(Calendar.MINUTE, 0);  
		dataVencimentoBoleto.set(Calendar.SECOND, 0);  
		dataVencimentoBoleto.set(Calendar.MILLISECOND, 0);  
		
		Calendar dataHoje = Calendar.getInstance();
		dataHoje.setTime(new Date());
		// Set time fields to zero  
		dataHoje.set(Calendar.HOUR_OF_DAY, 0);  
		dataHoje.set(Calendar.MINUTE, 0);  
		dataHoje.set(Calendar.SECOND, 0);  
		dataHoje.set(Calendar.MILLISECOND, 0);  
				
		
		if(dataVencimentoBoleto.before(dataHoje)){
			FacesMessage message = new FacesMessage();
			message.setSeverity(FacesMessage.SEVERITY_ERROR);
			message.setSummary("Data venc. tem de ser IGUAL ou MAIOR que a data de hoje !");
			throw new ValidatorException(message);
		}
		
		
	}

}
